博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#采集有声小说控制台(附源码)
阅读量:7220 次
发布时间:2019-06-29

本文共 2874 字,大约阅读时间需要 9 分钟。

  hot3.png

首先感谢"北京 - 晴晴的分享", 咱们ttlsa游子群都乐于帮助和分享. 晴晴是咱们ttlsa第二位分享的妹纸. 妹纸说要发文章,打开RAR吓一跳,会.net的妹纸不得了.好了,以下是晴晴的原文. 今天给大家介绍下C#.net采集有声小说的demo,其实采集都是大同小意的,只要撑握好方法,所有数据都可以采集到。 不多说。直接粘代码+注释.
namespace CJ.BLL{    public class FictionBLL    {    private string domain = "www.xiats.com";//提前定义好变量,这个变量以后会总用到。不用总重复写了        public void main()        {            //首先要找到一个列表页www.xiats.com/yslist/1.html            string url = domain + "/yslist/1.html";//找到该页的最大页数,为了做遍历用            string html = Tool.GetHtml(url);//获取到源码            int maxPage = Tool.ToInt32(Regex.Match(html, "Page (?:\\d+) of (\\d+)").Groups[1].Value);//正则里.*?是获取所有文字,包括数字,.Groups[2].Value指的是获取到第二个(.*?)里的数据             //好了。现在我们开始遍历数据            //要先分析出地址的下一页是什么            //所以要点开列表的第2页 www.xiats.com/yslist/1_2.html            //好。最后真实地址找到。把2换成任意字符,如www.xiats.com/yslist/1_page.html            string listurl = domain + "/yslist/1_page.html";            for (int i = 1; i <= maxPage; i++)            {                listurl = listurl.Replace("page", i.ToString());//获取到真实地址                List(listurl);            }        }        ///         /// 列表页数据分析        ///         ///         public void List(string url)        {            //这里主要是获取到小说详情页的地址。            string html = Tool.GetHtml(url);            //获取到源码后要把大的范围缩小,我们只需要中间的列表页信息            html = Regex.Match(html, "
([\\s\\S]+?)
", RegexOptions.IgnoreCase).Groups[1].Value;//RegexOptions.IgnoreCase指的是忽略大小写            //接下来就要取出详情页地址了            MatchCollection matchs = Regex.Matches(html, "
");            foreach (Match item in matchs)            {                string detailurl = domain + item.Groups[1].Value;//就这么简单的获取到了详情页地址                Detail(detailurl);//最麻烦的详情页分析来了            }        }        ///         /// 详情页分析        ///         ///         public void Detail(string url)        {            string html = Tool.GetHtml(url);            string title = Regex.Match(html, "

(.*?)

", RegexOptions.IgnoreCase).Groups[1].Value;            string broadcast = Regex.Match(html, "
  • 播音:
    (.*?)
    ").Groups[1].Value;            string author = Regex.Match(html, "
  • 作者:(.*?)").Groups[1].Value;            string state = Regex.Match(html, "
  • 状态:(.*?)
  • ").Groups[1].Value;            string content = Regex.Match(html, "小说简介
    ([\\s\\S]+?)
    ", RegexOptions.IgnoreCase).Groups[1].Value;            content = content.Replace("
    ", string.Empty);            //下一步就是要把获取到的数据源写到数据库了。这里不做数据库操作的DEMO。            //其它的大同小意,就不一一写出规则了。如果有问题,可以加入群一起讨论学习            //可能你已经发现。正则就是两种            //1、.*? 就是规则出所有文字            //2、[\\s\\S]+? 获取含有\r\n\t这类的文字内容            //做采集无非就是把大的内容缩放到最小。然后在匹配出想要获取的内容             //注:以上内容只是学习参考,数据还是最好自己原创。剽窃是对他人和自己的不公平 。        }    }}
    C#源码: 站点:运维生存时间  网址:http://www.ttlsa.com/html/3627.html

    转载于:https://my.oschina.net/766/blog/211555

    你可能感兴趣的文章
    星级评价条——简单使用和属性
    查看>>
    history、重定向、alias
    查看>>
    df命令、du命令、磁盘分区
    查看>>
    Linux基础(day48)
    查看>>
    Linux基础(day57)
    查看>>
    输入法的控制 - ime-mode
    查看>>
    su命令 、sudo命令、限制root远程登录
    查看>>
    MaxCompute studio FAQ
    查看>>
    一周一次课(12月11日)
    查看>>
    12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证 12.9 Nginx域名重定向
    查看>>
    Java基础——方法的可变参数
    查看>>
    使用Gardener在Google Cloud Platform上创建Kubernetes集群
    查看>>
    webpack配置(第四步:html篇(基础篇))
    查看>>
    python 笔记 之 os模块
    查看>>
    JS判断两个对象内容是否相等的方法示例及开发面试题汇总(图)
    查看>>
    browser-solidity安装
    查看>>
    go中时间范围比较
    查看>>
    57.toncat介绍 安装jdk和tomcat
    查看>>
    Windows平台使用Gitblit搭建Git服务器
    查看>>
    CACHE的一些基本概念
    查看>>